MongoDB হল একটি NoSQL ডেটাবেস, যা ডেটা সংরক্ষণের জন্য ডকুমেন্ট-ভিত্তিক মডেল ব্যবহার করে। MongoDB-তে সম্পর্ক তৈরি করার জন্য, রিলেশনাল ডেটাবেসের মতো টেবিলের মধ্যে সরাসরি সম্পর্ক স্থাপন করা হয় না। তবে, ডকুমেন্টগুলির মধ্যে একাধিক সম্পর্ক প্রতিষ্ঠিত করা যেতে পারে, যেমন One-to-One, One-to-Many এবং Many-to-Many সম্পর্ক।
এখানে আমরা Java MongoDB ড্রাইভার ব্যবহার করে এই সম্পর্কগুলির কিছু উদাহরণ দেখব।
One-to-One Relationship
One-to-One সম্পর্ক মানে একটি ডকুমেন্টের একটি একক রেকর্ড অন্য একটি ডকুমেন্টের সাথে সম্পর্কিত। MongoDB-তে, এই সম্পর্ক সাধারণত একটি ডকুমেন্টের ভিতরে অন্য একটি ডকুমেন্টের রেফারেন্স রেখে তৈরি করা হয়।
উদাহরণ:
ধরা যাক, আপনার কাছে একটি Person ডকুমেন্ট রয়েছে এবং প্রতিটি Person এর একটি একক Address রয়েছে।
import org.bson.Document;
MongoCollection<Document> personCollection = database.getCollection("persons");
Document address = new Document("street", "123 Main St")
.append("city", "New York")
.append("zipcode", "10001");
Document person = new Document("name", "John")
.append("age", 30)
.append("address", address); // One-to-One relationship
personCollection.insertOne(person);
এখানে Person ডকুমেন্টের ভিতরে Address ডকুমেন্ট রাখা হয়েছে, যা One-to-One সম্পর্ককে প্রতিনিধিত্ব করে।
One-to-Many Relationship
One-to-Many সম্পর্ক মানে একটি ডকুমেন্টের একটি একক রেকর্ড অনেক ডকুমেন্টের সাথে সম্পর্কিত। MongoDB-তে, এই ধরনের সম্পর্ককে সাধারণত এক ডকুমেন্টের মধ্যে একটি অ্যারে ব্যবহার করে উপস্থাপন করা হয়।
উদাহরণ:
ধরা যাক, আপনার কাছে একটি Department ডকুমেন্ট রয়েছে এবং প্রতিটি Department এর একাধিক Employee রয়েছে।
import org.bson.Document;
import java.util.Arrays;
MongoCollection<Document> departmentCollection = database.getCollection("departments");
Document employee1 = new Document("name", "Alice")
.append("role", "Developer");
Document employee2 = new Document("name", "Bob")
.append("role", "Manager");
Document department = new Document("departmentName", "IT")
.append("employees", Arrays.asList(employee1, employee2)); // One-to-Many relationship
departmentCollection.insertOne(department);
এখানে Department ডকুমেন্টের মধ্যে employees নামে একটি অ্যারে রাখা হয়েছে, যেখানে একাধিক Employee ডকুমেন্ট রয়েছে, যা One-to-Many সম্পর্ককে প্রতিনিধিত্ব করে।
Many-to-Many Relationship
Many-to-Many সম্পর্ক মানে একাধিক ডকুমেন্ট একাধিক ডকুমেন্টের সাথে সম্পর্কিত। MongoDB-তে, এই সম্পর্কটি সাধারণত দুটি ডকুমেন্টের মধ্যে রেফারেন্সযুক্ত অ্যারে ব্যবহার করে তৈরি করা হয়।
উদাহরণ:
ধরা যাক, আপনার কাছে একটি Student ডকুমেন্ট এবং একটি Course ডকুমেন্ট রয়েছে, যেখানে একাধিক Student অনেক Course তে রেজিস্টার হতে পারে এবং প্রতিটি Course তে একাধিক Student থাকতে পারে।
import org.bson.Document;
import java.util.Arrays;
MongoCollection<Document> studentCollection = database.getCollection("students");
MongoCollection<Document> courseCollection = database.getCollection("courses");
Document course1 = new Document("courseName", "Mathematics");
Document course2 = new Document("courseName", "Physics");
Document student1 = new Document("name", "John")
.append("courses", Arrays.asList(course1, course2)); // Many-to-Many relationship
Document student2 = new Document("name", "Sarah")
.append("courses", Arrays.asList(course1)); // Many-to-Many relationship
studentCollection.insertOne(student1);
studentCollection.insertOne(student2);
এখানে Student ডকুমেন্টের মধ্যে courses অ্যারে রাখা হয়েছে, যা Course ডকুমেন্টগুলির রেফারেন্স ধারণ করছে। এটি Many-to-Many সম্পর্কের একটি উদাহরণ।
সারাংশ
MongoDB-তে One-to-One, One-to-Many এবং Many-to-Many সম্পর্কগুলি বিভিন্ন উপায়ে তৈরি করা যায়। One-to-One সম্পর্ক সাধারণত এক ডকুমেন্টের মধ্যে অন্য ডকুমেন্ট সংরক্ষণ করে তৈরি করা হয়। One-to-Many সম্পর্ক অ্যারে ব্যবহার করে একাধিক রেকর্ড সংরক্ষণ করা হয়। Many-to-Many সম্পর্ক দুইটি ডকুমেন্টের মধ্যে অ্যারে ব্যবহার করে একে অপরকে রেফারেন্স করে সম্পর্কিত হয়। Java MongoDB ড্রাইভার এই সম্পর্কগুলি সহজে তৈরি এবং পরিচালনা করতে সহায়তা করে।
Read more